I. Field
The present disclosure relates generally to mobile computing, and more specifically to techniques for managing a shared network connection between one or more computing devices.
II. Background
Conventionally, dual-processor and/or other multi-processor environments for a mobile computing device (e.g., a personal digital assistant (PDA), smartphone, handheld computer, etc.) can include a modem processor responsible for air interface protocol operations and an application processor that runs the operating system of the device. Further, respective processors in such an environment can connect to peripherals and/or an external memory, which can be partitioned into three regions that correspond to the modem processor, the application processor, and inter-processor communication, respectively.
In order to accomplish various computing tasks, respective processors in a multi-processor mobile computing environment and/or memory regions with which the processors are associated can be configured to interact with each other. Thus, for example, an application running on a mobile computing device using an application processor can utilize wireless data connectivity provided by a modem processor. As another example, a mobile computing device can utilize data service sharing with another computing device that is connected or tethered to the mobile device via one or more interfaces. In such an example, the mobile computing device and the tethered device can utilize a common internet protocol (IP) address on the wireless data connection of the mobile device. Accordingly, the mobile device can be required to monitor uplink and downlink packet flows and perform network address translation (NAT) to direct appropriate data to the tethered device. Traditionally, such operations are performed at the mobile device by an application processor, such that all data packets have to be transferred to and from a modem memory region to an application memory region.
In light of the above examples, it can be appreciated that in both the embedded application case and the data service sharing case, a significant number of data copies are required between the modem and application processors of a mobile device for data processing and/or transfer. These data copies can generate excessive transactions on the system bus and external memory of a mobile device, increasing power consumption and CPU resource usage as well as increasing end-to-end delay. Accordingly, it would be desirable to implement multi-processor management techniques for a mobile computing device that mitigate at least the above shortcomings.